Oracle使用游标批量更新表数据 - CSDN博客

创建时间:2018/8/30 14:04
来源:https://blog.csdn.net/ptsx0607/article/details/80259049

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ptsx0607/article/details/80259049
Oracle使用游标批量更新表数据:
  1. 1
    BEGIN
  2. 2
    FOR JSC IN
  3. 3
    (
  4. 4
    SELECT JS.*
  5. 5
    FROM SF_JMMJJS_T JS,SF_EBZCB_T CB,SF_JMYH_T YH
  6. 6
    WHERE
  7. 7
    JS.YHBH=CB.YHBH AND JS.MJBH=CB.MJBH AND JS.CNQ=CB.CNQ
  8. 8
    AND JS.YHBH=YH.YHBH
  9. 9
    AND JS.YSJE = 0
  10. 10
    AND JS.SFMJ>0
  11. 11
    AND JS.GNZT = '正常'
  12. 12
    AND JS.ZF = 0
  13. 13
    AND JS.CNQ = '2016-2017'
  14. 14
    AND CB.ZT=2
  15. 15
    AND YH.SFEBZ='是'
  16. 16
    AND YH.ZF=0
  17. 17
    AND YH.GNZT = '正常'
  18. 18
    )LOOP
  19. 19
    UPDATE SF_JMMJJS_T
  20. 20
    SET YSJE=(CASE WHEN ROUND(JSC.MJYS*JSC.JSBL+JSC.JLYS,0)>JSC.MJYS
  21. 21
    THEN JSC.MJYS
  22. 22
    ELSE
  23. 23
    ROUND(JSC.MJYS*JSC.JSBL+JSC.JLYS,0)
  24. 24
    END)
  25. 25
    WHERE SF_JMMJJS_T.BH=JSC.BH;
  26. 26
    END LOOP;
  27. 27
    END;
  28. 28
    COMMIT;